This invention relates generally to improved digital differential analyzer (DDA) circuits and more particularly to DDA circuits in which the output pulse rate can be scaled by factors other than powers of the radix of the number system in use.
The operation of the DDA circuit is well known in the art and is described in U.S. Pat. No. 2,841,328 -- Steele et al. In DDA computer circuits a variable is represented by a train of pulses having a rate proportional to the derivative of the variable. As described by Steele et al., the basic DDA circuit consists of three elements: a counter which responds to incremental changes, .DELTA. v, of the integrand to keep track of the current value of the integrand, V, a remainder register which stores the fractional portion of the integral, and an add-subtract circuit that adds the current value of the integrand to the fractional value of the integral in response to a unit change of the variable of integration, .DELTA. u. The overflow output of the remainder register represents a unit change, .DELTA. z, of the value of the integral. Neglecting the error due to the value of the remainder, the DDA output rate is given as: ##EQU1## The above equation states that the output rate of the DDA varies in direct proportion to the variable, V, and to the input rate of the variable of integration. The constant, M, is a scale factor which is dependent on the base of the arithmetic number system employed and the number of stages of the remainder register. Thus, if binary arithmetic is used and the remainder register has 12 stages; M equals 2.sup.12, or if decimal arithmetic is used and the remainder register has 5 decimal digits, M will equal 10.sup.5. Quite often the input rate of the variable of integration, U, is uniform and is determined by the time it takes to add the value of the integrand to the remainder register. The maximum value that V can have if the remainder register is a 12 stage binary register is 2.sup.12 -1 which means that the output rate can approach, but never equal or exceed the input rate of the variable of integration. As the value of V decreases, the output rate will decrease proportionally. If the value of the integrand V never exceeds 2.sup.11 , the maximum output rate will not exceed 0.5 times the input rate. In certain applications it is desirable to maintain a high output pulse rate even though the average value of the integrand is small. One prior art approach for increasing the output rate involves taking the overflow signal, .DELTA. z, from a lower order stage of the remainder register. Thus, if the integrand, V, will never exceed 2.sup.11, and the overflow signal is taken from the 11th stage rather than the 12th stage of the remainder register, the output rate will again be almost equal to the input rate. In this manner it is possible to maintain an output rate of between 0.5 to 1.0 times the input rate depending on the value and range of the variable V. In certain applications it would be desirable to maintain the output pulse rate very close to the input pulse rate regardless of the value of the integrand V. For example, it is common to use DDA's as a function generator to numerically control a machine tool. Such a function generator is described in U.S. Pat. No. 3,449,554 -- Kelling, in which the function generator accepts a train of pulses representing a desired contouring velocity and resolves the pulse train into two components of pulses, wherein each pulse represents a commanded incremental distance along one of two orthogonal axes. As is well-known in the art, if the output of the X integrator is applied to incrementally change the Y integrand, and vice versa, the function generator will command the machine tool to contour a circular arc. The initial value of the integrands are the X and Y arc center offsets from the starting point of the arc. Each output pulse represents an incremental distance of motion along the axis. Although the prior art approach of taking the overflow signal from a lower order stage of the remainder register will keep the actual contouring velocity within the range of 0.5 to 1.0 times the desired contouring velocity, it would be desirable to provide the desired contouring velocity for all values of x and y arc center offsets.
It is, therefore, one object of this invention to provide a DDA in which the output pulse rate can be selected to be other than a factor of the radix of the number system in use.
Another object of this invention to provide a DDA in which the output pulse rate is controlled independently of the input pulse rate and the size of the integrand.
Another object of this invention is to provide an improved function generator for use in a numerical control for a machine tool.
Another object of this invention is to provide a function generator for use in a numerical control for a machine tool in which the actual contouring velocity can be maximized regardless of the initial size of the X and Y arc center offsets.
And yet another object of this invention is to provide an improved method of generating the X and Y axis command pulses in a numerical contouring control for a machine tool.